Docker on Linux

适用于版本日期20210711。

1 使用非根用户管理

Docker Daemon与Unix Socket绑定,默认以root用户运行。

使用其他用户访问需要创建unix group并授权。

注意者等效于授予其他用户root权限,安全影响详见Docker Daemon Attack Surface

使用非root权限运行详见Run the Docker daemon as a non-root user (Rootless mode)

1
2
3
4
5
6
7
8
# 创建名为docker的unix group
sudo groupadd docker
# 添加其他用户
sudo usermod -aG docker $USER
# 重新登录以应用配置
newgrp docker
# 测试运行
docker run hello-world

如果在添加用户前使用了命令,需要删除自动创建的文件夹~/.docker/,或更改文件夹所有者和权限。

1
2
3
# 提示:WARNING: Error loading config file: /home/user/.docker/config.json -stat /home/user/.docker/config.json: permission denied
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

2 开机启动

常见Linux发布版本使用systemd管理开机启动。Debian和Ubuntu默认设置了开机启动。

1
2
3
4
5
6
7
# 开启
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

# 关闭
sudo systemctl disable docker.service
sudo systemctl disable containerd.service

添加HTTP代理详见customize your systemd Docker daemon options

3 使用不同的存储引擎

详见Storage drivers

4 配置默认日志驱动

Docker 提供了收集和查看主机上所有容器日志的能力,详见capability

默认日志驱动json-file以json格式写日志到主机,存在磁盘耗尽的风险。可以使用日志滚动log rotation或其他驱动避免alternative logging driver

TODO more

参考资料